package com.llt.mp.domain.dto;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.llt.mp.domain.po.User;
import com.llt.mp.domain.vo.UserVO;
import lombok.Data;

import java.util.List;

@Data
public class PageDto<T> {
    private Long total;

    private Long pages;

    private List<T> list;

    public static <PO, VO> PageDto<VO> of(Page<PO> p, Class<VO> voClass) {
        PageDto<VO> dto = new PageDto<>();
        dto.setTotal(p.getTotal());
        dto.setPages(p.getPages());

        List<PO> records = p.getRecords();
        if ((CollUtil.isNotEmpty(records))) {
            dto.setList(BeanUtil.copyToList(records, voClass));
        }

        return dto;
    }

}
